/* 同向双指针/滑动窗口*/
#include <iostream>
#include <unordered_map>
using namespace std;

const int N = 1e6 + 10;

int n;
int a[N];

int main()
{
    int T; cin >> T;
    while(T--)
    {
        cin >> n;
        for(int i = 1; i <= n; i++) cin >> a[i];
        // 初始化
        int left = 1, right = 1, ret = 0;
        unordered_map<int, int> mp; // 维护窗口内所有元素出现的次数
        while(right <= n)
        {
            // 进窗口
            mp[a[right]]++;
            // 判断
            while(mp[a[right]] > 1)
            {
                // 出窗口
                mp[a[left]]--;
                left++;
            }
            // 窗口合法，更新结果
            ret = max(ret, right - left + 1);
            right++;
        }
        cout << ret << endl;
    }
    return 0;
}